package models

import (
	"github.com/jinzhu/gorm"
	"kop/modules/stage/entity"
)

func AutoMigrate(dB *gorm.DB) {

	dB.AutoMigrate(new(entity.Stage))
}

func FirstOrCreate(dB *gorm.DB, roleID, serverID int32) entity.Stage {

	var data = entity.Stage{
		RoleID:   roleID,
		ServerID: serverID,
		StageID:  1,
	}

	if err := dB.FirstOrCreate(&data).Error; err != nil {
		panic(err)
	}

	if data.ServerID != serverID {
		data.ServerID = serverID
		SaveStage(dB, &data)
	}

	return data
}

func GetStage(dB *gorm.DB, roleID int32) entity.Stage {

	var data = entity.Stage{
		RoleID: roleID,
	}

	if err := dB.First(&data).Error; err != nil {
		panic(err)
	}

	return data
}

func SaveStage(dB *gorm.DB, stage *entity.Stage) {

	if err := dB.Save(&stage).Error; err != nil {
		panic(err)
	}
}
